iT邦幫忙

2023 iThome 鐵人賽

DAY 5
0

由於這次的主題有兩大區塊,一部分是Notion,另一部分是google calendar,這邊就從Notion API開始介紹起。

Notion API

今天稍微介紹一下NotionAPI的部分,Developer可以透過NotionAPI和Notion的Workspace進行溝通

NotionAPI這邊提供的是REST API,主要可以操作的部分為

  • Pages
  • Databases
  • Users
  • Page and inline comments
  • Querying workspace content
  • Authenticating integrations
  • Customizing unfurled links

由於這邊可以操作Databases,所以理論上可以同步我從google calendar撈回來的資料

https://ithelp.ithome.com.tw/upload/images/20230920/201408698fgKlALRuy.png

這邊和Notion這個新Feature有關的角色都可以合力透過NotionAPI整合產品,文中有提到內部(Internal)和外部(Public)整合這兩種

  • Internal Integrations:只有在同一個Workspace中的使用者才能夠使用這個Integration,而Default也會是Internal Integrations,而這個Side Project原則上也只會使用到這個功能
  • Public Integrations:在任何Workspace中的使用者都可以使用這個Public的整合,而這個功能需要再integration的設定頁面才能夠設定,因此不用擔心不小心按到這個功能。

由於這邊的功能目前的Side Project主要會用到的是Database,所以接下來來看一下Working with databases的部分

Working with databases

https://ithelp.ithome.com.tw/upload/images/20230920/20140869VXOoIrRV3q.png

在Notion中的Database長成這樣,除了表列之外還有timeline跟calendar模式

https://ithelp.ithome.com.tw/upload/images/20230920/20140869NkYakIk1Q9.png

https://ithelp.ithome.com.tw/upload/images/20230920/20140869xYli4hG5Fx.png

因此我的目標就是同步Google calendar後,主要要將項目內容跟日期時間同步過來,由於Notion calendar的時間呈現只能細到日期(day),因此用timeline來協助呈現小時(hour)的內容

Structure

在Notion database中的格式長這樣

{
  "object": "database",
  
  "id": "2f26ee68-df30-4251-aad4-8ddc420cba3d",
  "created_time": "2020-03-17T19:10:04.968Z",
  "last_edited_time": "2020-03-17T21:49:37.913Z",
  "title": [/* details omitted */],
  "description": [/* details omitted */],
  
  "properties": {/* a collection of property objects */},
  "archived": false,
  "is_inline": false,
  "public_url": null
}

這邊會有一些database相關的內容

  • object:這個json的功能
  • id:database的Id
  • created time:db創建的時間
  • last edited time:db最後更新的時間
  • title:db的標題
  • description:db的描述
  • properties:db最重要的部分,column的型態
  • archived:有沒有被封存
  • in inline:排版是不是inline,如果db是嵌入在某個頁面中的,那就是inline,反之如果是全螢幕呈現的話,就不是
  • public url:是不是public的integration

Properties的內容明天解釋,並且我會嘗試使用golang打打看API看能不能成功創建database

今天就先這樣,重新評估了一下專案的可行性

Reference


上一篇
Day 4 Go語言介紹 vol.2
下一篇
Day 6 初探Notion API vol.2
系列文
行事曆不再NG:Notion API&Google Calendar跨平台整合發想30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言